package collection01;

import java.util.ArrayList;
import java.util.Collection;
/*
* 集合体系通用功能
*  boolean add(E e)     E是泛型  可以看做(Object e)
*          确保此 collection 包含指定的元素（可选操作）。
*          向集合中添加元素
*  int size()
*          返回此 collection 中的元素数。  获取集合中已有的元素个数
*
*   void clear()
*          移除此 collection 中的所有元素（可选操作）。
* */
public class CollectionDemo01 {
    public static void main(String[] args) {
        //method01();
        // method02();
        Collection c2 = new ArrayList();
        c2.add("abc");
        c2.add(123);
        c2.add("efg");
        System.out.println(c2);  // abc, 123, efg]
        c2.clear();
        System.out.println(c2); // []


    }
    private static void method02() {
        Collection c1 = new ArrayList(); // 父接口指向实现类对象 (多态)
        c1.add(123); // Object e = 123
        // 123 自动装箱成整数对象  Object e = new Integer(123)
        c1.add("abc");
        c1.add(456);
        System.out.println(c1);  // [123, abc, 456]
        System.out.println(c1.size()); // 3
    }
    private static void method01() {
        Collection c = new ArrayList(); // 父接口指向实现类对象 (多态)
        c.add("abc"); // Object e = "abc"  abc是String类, String类也是Object类
        // 此时也是父类引用指向子类对象(多态)
        c.add("efg");
        System.out.println(c);   // [abc, efg]  不是打印十六进制值，说明底层重写了toString()方法
    }
}
